using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace ]
{
    /// <summary>
    /// Interaction logic for DetalhePrincipal.xaml
    /// </summary>
    public partial class [NomeTabela]Principal : UserControl
    {
        public [NomeTabela]Principal()
        {
            InitializeComponent();
        }

        private void btIncluir_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                [NomeTabela]DTO detalheDTO = new [NomeTabela]DTO();
                detalheDTO.Id[NomeTabelaPai] = (([NomeTabelaPai]ViewModel)DataContext).[NomeTabelaPai]Selected.Id;

                (([NomeTabelaPai]ViewModel)DataContext).[NomeTabela]Selected = detalheDTO;
                [NomeTabela] viewDetalhe = new [NomeTabela]();
                viewDetalhe.btSair.Click += new RoutedEventHandler(btSair_Click);
                viewDetalhe.btGravar.Click += new RoutedEventHandler(btGravar_Click);
                tabDetalhe.Content = viewDetalhe;
                tabDetalhe.IsSelected = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Alerta do sistema");
            }
        }

        private void btExcluir_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if ((([NomeTabelaPai]ViewModel)DataContext).[NomeTabelaPai]Selected != null)
                {
                    (([NomeTabelaPai]ViewModel)DataContext).[NomeTabelaPai]Selected.
                        Lista[NomeTabela].Remove(
                        (([NomeTabelaPai]ViewModel)DataContext).[NomeTabela]Selected);
                    viewLista.dataGrid.Items.Refresh();
                }                
                else
                    MessageBox.Show("Selecione um elemento na lista.", "Alerta do sistema");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Alerta do sistema");
            }
        }

        private void btConsultar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if ((([NomeTabelaPai]ViewModel)DataContext).[NomeTabela]Selected != null)
                {
                    tabDetalhe.IsSelected = true;
                    [NomeTabela] viewDetalhe = new [NomeTabela]();
                    viewDetalhe.btSair.Click += new RoutedEventHandler(btSair_Click);
                    viewDetalhe.btGravar.Click += new RoutedEventHandler(btGravar_Click);
                    tabDetalhe.Content = viewDetalhe;
                }                
                else
                    MessageBox.Show("Selecione um elemento na lista.", "Alerta do sistema");
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }

        void btGravar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                (([NomeTabelaPai]ViewModel)DataContext).[NomeTabelaPai]Selected.
                    Lista[NomeTabela].Add((([NomeTabelaPai]ViewModel)DataContext).
                    [NomeTabela]Selected);
                viewLista.dataGrid.Items.Refresh();
                tabDetalheLista.IsSelected = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Alerta do sistema");
            }
        }

        void btSair_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                viewLista.dataGrid.Items.Refresh();
                tabDetalheLista.IsSelected = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Alerta do sistema");
            }
        }

    }
}
